﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FrontPay.aspx.cs" %>

<%@ Import Namespace="com.unionpay.upop.sdk" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<% 
    // **************演示前台交易的请求***********************
  
    // 要使用各种Srv必须先使用LoadConf载入配置
    UPOPSrv.LoadConf(Server.MapPath("./App_Data/conf.xml.config"));

    // 使用Dictionary保存参数
    System.Collections.Generic.Dictionary<string, string> param = new System.Collections.Generic.Dictionary<string, string>();
    
    // 随机构造一个订单号（演示用）
    Random rnd = new Random();
    string orderTime = DateTime.Now.ToString("yyyyMMddHHmmss");
    string orderID = orderTime + (rnd.Next(900) + 100).ToString().Trim();

    //保存订单号
    string userName = Session["userName"].ToString();
    string password = Session["password"].ToString();

    string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" + Server.MapPath("./App_Data/paymentInfo.mdb");//创建OleDbConnection对象 
    System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(ConStr);
    con.Open();

    if (con.State == System.Data.ConnectionState.Open)
    {
        System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("update record set orderid=" + orderID + ", orderdate=" + orderTime + " where username=@userName and password=@password", con);
        cmd.Parameters.Add("@userName", userName);
        cmd.Parameters.Add("@password", password);
        int count = cmd.ExecuteNonQuery();

        if (1 != count)
        {
            //保存订单号失败，则跳转到error页面
        }

    }
    con.Close();
    
    // 填写参数
    param["transType"] = UPOPSrv.TransType.CONSUME;                        // 交易类型，前台只支持CONSUME 和 PRE_AUTH
    param["commodityUrl"] = "http://emall.chinapay.com/product?name=商品";  // 商品URL
    param["commodityName"] = "商品名称";                                    // 商品名称
    param["commodityUnitPrice"] = "5000";                                  // 商品单价，分为单位
    param["commodityQuantity"] = "1";                                       // 商品数量
    param["orderNumber"] = orderID;                                         // 订单号，必须唯一
    param["orderAmount"] = "5000";                                         // 交易金额
    param["orderCurrency"] = UPOPSrv.CURRENCY_CNY;                          // 币种
    param["orderTime"] = DateTime.Now.ToString("yyyyMMddHHmmss");           // 交易时间
    param["customerIp"] = "222.135.111.86";                                  // 用户IP
    param["frontEndUrl"] = "http://222.135.111.86:8085/NotifyCallback.aspx";  // 前台回调URL
    param["backEndUrl"] = "http://222.135.111.86:8085/NotifyCallback.aspx";   // 后台回调URL（前台请求时可为空）

    // 创建前台交易服务对象
    FrontPaySrv srv = new FrontPaySrv(param);

    //将前台交易服务对象产生的Html文档写入页面，从而引导用户浏览器重定向
    Response.Write(srv.CreateHtml());
   
%>

